﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using ProyectoBastanteo.Dominio;
using System.Data.SqlClient;
using ProyectoBastanteo.Persistencia;

namespace ProyectoBastanteo.Persistencia
{
    public class IntervencionDAO
    {
        private ClienteDAO ClieDAO = new ClienteDAO();
        private PoderesDAO PoderDAO = new PoderesDAO();

        public Intervencion Crear(Intervencion IntervencionACrear)
        {
            string sentencia = "INSERT INTO Intervencion VALUES (@codclie,@grubast,@codpode,@gruinte)";

            using (SqlConnection conexion = new SqlConnection(Coneccion.ObtenerCadena()))
            {
                conexion.Open();
                using (SqlCommand comando = new SqlCommand(sentencia, conexion))
                {
                    comando.Parameters.Add(new SqlParameter("@codclie", IntervencionACrear.codclie.codclie));
                    comando.Parameters.Add(new SqlParameter("@grubast", IntervencionACrear.grubast));
                    comando.Parameters.Add(new SqlParameter("@codpode", IntervencionACrear.codpode.codpod));
                    comando.Parameters.Add(new SqlParameter("@gruinte", IntervencionACrear.gruinte));
                    comando.ExecuteNonQuery();
                }
            }
            return IntervencionACrear;
        }

        public Intervencion ObtenerxCliente(Cliente codclie)
        {
            Intervencion IntervencionAObtener = null;
            int codigo = codclie.codclie;

            using (SqlConnection conexion = new SqlConnection(Coneccion.ObtenerCadena()))
            {   conexion.Open();
                String sentencia = "SELECT codclie, grubast, codpode, gruinte from Intervencion WHERE codclie=@codigo";
                using (SqlCommand comando = new SqlCommand(sentencia, conexion))
                {
                    comando.Parameters.AddWithValue("@codigo", int.Parse(codigo.ToString()));
                    SqlDataReader resultado = comando.ExecuteReader();
                    if (resultado.Read())
                    {
                        IntervencionAObtener = new Intervencion();
                        IntervencionAObtener.codclie = ClieDAO.Obtener((int)resultado["codclie"]);  
                        IntervencionAObtener.grubast = (string)resultado["grubast"];
                        IntervencionAObtener.codpode = PoderDAO.Obtener((string)resultado["codpode"]);
                        IntervencionAObtener.gruinte = (string)resultado["gruinte"];
                    }
                }
            }
            return IntervencionAObtener;
        }


        public void Eliminar(Intervencion IntervencionAElim)
        {
            string sentencia = "DELETE FROM Intervencion WHERE codclie=@codclie and grubast=@grubast and codpode=@codpode and gruinte=@gruinte ";
            using (SqlConnection conexion = new SqlConnection(Coneccion.ObtenerCadena()))
            {
                conexion.Open();
                using (SqlCommand comando = new SqlCommand(sentencia, conexion))
                {
                    comando.Parameters.Add(new SqlParameter("@codclie", IntervencionAElim.codclie.codclie ));
                    comando.Parameters.Add(new SqlParameter("@grubast", IntervencionAElim.grubast));
                    comando.Parameters.Add(new SqlParameter("@codpode", IntervencionAElim.codpode.codpod));
                    comando.Parameters.Add(new SqlParameter("@gruinte", IntervencionAElim.gruinte));
                    comando.ExecuteNonQuery();
                }
            }
        }


        public Intervencion  ObtenerBastInt(int cliente, string grupo, string poder,string grupoI)
        {
            Intervencion  IntervExiste = null;
            string sentencia = "SELECT * FROM Intervencion WHERE codclie=@codigo and grubast=@grupo and codpode=@poder and gruinte=@grupoI";
            using (SqlConnection conexion = new SqlConnection(Coneccion.ObtenerCadena()))
            {
                conexion.Open();
                using (SqlCommand comando = new SqlCommand(sentencia, conexion))
                {
                    comando.Parameters.Add(new SqlParameter("@codigo", cliente));
                    comando.Parameters.Add(new SqlParameter("@grupo", grupo));
                    comando.Parameters.Add(new SqlParameter("@poder", poder));
                    comando.Parameters.Add(new SqlParameter("@grupoI", grupoI));

                    SqlDataReader resultado = comando.ExecuteReader();
                    if (resultado.Read())
                    {
                        IntervExiste = new Intervencion();
                        IntervExiste.codclie = ClieDAO.Obtener((int)resultado["codclie"]);  //ClieDAO.Obtener(int.Parse(resultado["codclie"].ToString())); 
                        IntervExiste.grubast = (string)resultado["grubast"];
                        IntervExiste.codpode = PoderDAO.Obtener((string)resultado["codpode"]);
                        IntervExiste.gruinte = (string)resultado["gruinte"];
                    }
                }
            }
            return IntervExiste;
        }

    }

}